﻿using System;
using System.Xml.Serialization;

namespace Interscape.TwilioClient.Components
{
    /// <summary>
    /// The base TwilioClient object that inherits from BaseAccountInfo, and represents information common to all Account-related TwilioAPI responses that can have a FriendlyName.
    /// </summary>
    [Serializable]
    public abstract class BaseFriendlyNameInfo : BaseAccountInfo
    {

        /// <summary>
        /// Creates a new instance of the BaseFriendlyNameAccountInfo object.
        /// </summary>
        protected BaseFriendlyNameInfo() : base()
        {
        }

        /// <summary>
        /// Creates a new instance of the BaseFriendlyNameInfo object.
        /// </summary>
        /// <param name="sid">A 34 character string that uniquely identifies this resource.</param>
        protected BaseFriendlyNameInfo(string sid) : base(sid)
        {
        }

        /// <summary>
        /// Creates a new instance of the BaseFriendlyNameInfo object.
        /// </summary>
        /// <param name="sid">A 34 character string that uniquely identifies this resource.</param>
        /// <param name="friendlyName">A human readable descriptive text for this resource, up to 64 characters long.</param>
        protected BaseFriendlyNameInfo(string sid, string friendlyName) : base(sid)
        {
            this.FriendlyName = friendlyName;
        }

        /// <summary>
        /// A human readable descriptive text for this resource, up to 64 characters long.
        /// </summary>
        [XmlElement]
        public string FriendlyName { get; set; }

    }
}
